package com.linx.common.core.domain;

import lombok.Data;

/**
 * @ClassName: YsyjRetrunVo
 * @Description:
 * @Author: jxw
 * @Date: 2024-10-20 11
 */
@Data
public class YsyjRetrunVo {

    /**
     * 成功
     */
    public static final String returnStatus_SUCCES = "S";

    /**
     * 失败
     */
    public static final String returnStatus_ERROR = "E";

    /**
     * 成功
     */
    public static final String returnCode_SUCCES = "A0001";

    /**
     * 失败
     */
    public static final String returnCode_ERROR = "E0001";

    /** 返回状态（成功为"S"，失败为"E"） */
    private String returnStatus;
    /** returnStatus是S时，returnCode要返回A0001-A0999中的一个编码值（如：A0001），并在returnMsg字段中返回业务信息（如单据核销成功）
     returnStatus是E时，returnCode要返回E0001-E0999中的一个编码值（如：E0001），并在returnMsg字段中返回业务信息（如单据号不匹配） */
    private String returnCode;
    /** 返回消息（与returnCode成对出现,成功时可能为空，失败时包含错误信息） */
    private String returnMsg;

    public static YsyjRetrunVo ok() {
        return restResult(returnStatus_SUCCES, returnCode_SUCCES, "操作成功");
    }

    public static YsyjRetrunVo fail(String returnCode,String returnMsg) {
        return restResult(returnStatus_SUCCES, returnCode, returnMsg);
    }

    public static YsyjRetrunVo fail(String returnMsg) {
        return restResult(returnStatus_ERROR, returnCode_ERROR, returnMsg);
    }

    private static YsyjRetrunVo restResult(String returnStatus, String returnCode,String returnMsg) {
        YsyjRetrunVo r = new YsyjRetrunVo();
        r.setReturnStatus(returnStatus);
        r.setReturnCode(returnCode);
        r.setReturnMsg(returnMsg);
        return r;
    }

}
